1. Field of the Invention
This invention generally relates to electronic memories and more specifically to synchronous random access memory design.
2. Description of Related Art
Random access memory (RAM) is the most common type of memory found in computers, printers and other devices that use microprocessors. Memory is required in microprocessors because only data that is stored in memory can be manipulated. The two basic types of RAM are dynamic RAM (DRAM) and static RAM (SRAM). SRAM is faster and more reliable than the more common and less expensive DRAM.
SRAM is typically used for cache memory which is accessed frequently, and DRAM is used for main memory. Additionally, many systems allow for direct memory access (DMA) to RAM. DMA is a technique for transferring data from memory to a processor without passing it through a memory management system.
Regardless of whether and how a SRAM or DRAM is used and implemented, the overall architecture is somewhat standard. All RAM modules contain an array of memory cells and have peripheral circuits. A memory cell stores either a single bit of information (1 or 0) or a group of bits, depending upon the architecture of the RAM module. Each memory cell is defined by a unique address and accessed with peripheral circuits.
Synchronous RAM uses a clock signal to time the phases of operation of the RAM module. For active-high logic circuits, the set-up phase is performed during the high portion of the clock signal and the access phase ("AC phase") during the low portion. The phases of an active-low circuit are performed in the opposite clock states.
Certain types of asynchronous RAM also use the set-up phase and the AC phase to time its operation. When a request is sent to the RAM, signal detection circuitry is used to initiate the set-up phase. A clock generation circuit, such as a boot-strap clock buffer, is then used to separate the AC phase from the set-up phase.
During the set-up phase, the address is decoded, the decision of whether to read or write is made, and, when necessary, the memory array pre-charges. The actual reading or writing to the memory cell is performed during the AC phase. Since both phases are necessary, only one complete read or write operation can be performed during a full clock cycle for a standard RAM module.
A DMA request, however, could occur at either the first half or the second half of a clock cycle. If a DMA request were received in the second half of a clock cycle, a RAM module would not be able to process the request until the next clock cycle, delaying the time that it would take to respond to the request. Additionally, the processor would need to arbitrate the DMA request. The microprocessor could only grant a DMA request by pausing its own use of the memory while allowing the device requesting the DMA to access the memory. Although dual port memory modules would allow for dual memory access during a single clock cycle, they are far too large and costly to be used regularly.
The cost effectiveness of RAM depends not only on the module's size, but also on the speed of the clock signal. A system with a clock signal that remains in its high state for longer than is needed to complete the set-up phase is inefficient. Similarly, it is inefficient for an RAM module to remain in its AC phase for longer than is required while the clock signal is low. Since the speed of a system clock is usually selected based on the requirements of the processor rather than to optimize operation of a RAM module, many RAM modules are unnecessarily idle.
What is needed is a synchronous RAM module that overcomes shortfalls of the RAMs currently known in the art.